|
Modifying the variable’s value
There are two ways to modify the value of a variable: frxReport1.Variables['My Variable 2'] := 10; or var Variable: TfrxVariable; { search for the variable } Index := frxReport1.Variables.IndexOf('My Variable 2'); { if it is found, change a value } if Index <> -1 then begin Variable.Value := 10; end; It should be noted, that when accessing a report variable its value is calculated if it is of string type. That means the variable which value is 'Table1."Field1"' will return a value of a DB field, but not the 'Table1."Field1"' string. You should be careful when assigning a string-type values to report variables. For example, the next code will raise exception "unknown variable 'test'" when running a report: frxReport1.Variables['My Variable'] := 'test'; because FastReport trying to calculate a value of such variable. The right way to pass a string values is: frxReport1.Variables['My Variable'] := '''' + 'test' + ''''; In this case the variable value - string 'test' will be shown without errors. But keep in mind that: - string should not contain single quotes. All single quotes must be doubled; - string should not contain #13#10 symbols. In some cases it is easier to pass variables using a script. |